$(document).ready(function() {
	var C = function(name) { return $(name); };
	
	var ctrl = {
		ListTable : '#listTable',
		
		AddForm : '#addForm',
		QueryForm : '#queryForm',
		Btn_Submit : '#btn_submit',
		Btn_Reset : '#btn_reset',
		Btn_Cancel : '#btn_cancel',
		
		Combobox : '.use-combobox',
		
		Combobox_on : '.use-combobox-on',
		onValue : [
			{"text" : "-150",value : "-150"},
			{"text" : "-100",value : "-100"},
			{"text" : "-50",value : "-50"},
			{"text" : "0",value : "0",selected : true},
			{"text" : "50",value : "50"},
			{"text" : "100",value : "100"},
			{"text" : "150",value : "150"},
			{"text" : "200",value : "200"}
		]
	};
	
	var init = function() {
		// 数据表
		C(ctrl.ListTable).datagrid({
			height : C(ctrl.ListTable).parent().height(),
			url : C(ctrl.QueryForm).attr('action'),
			queryParams : {'_method' : 'get'},
			method : 'post',
			pagination : true,
			singleSelect : true,
			
			onClickRow : datagridRowClick
		});
		
		// 变更提交按钮
		C(ctrl.AddForm).find(ctrl.Btn_Submit).click(function() {
			C(ctrl.AddForm).form('submit',{
				onSubmit : function() {
					formPresubmit();
					return C(ctrl.AddForm).form('validate');
				},
				success : function(data) {
					var ret = eval('(' + data + ')');
					if(ret && ret.resultSuccess) {
						$.messager.alert('Success','数据已保存');
						C(ctrl.ListTable).datagrid('reload',{'_method':'get',page : 1,rows : 10});
					} else
						$.messager.alert('ERROR',ret.resultErrMsg);
				}
			});
		});
		
		// 查询按钮
		C(ctrl.QueryForm).find(ctrl.Btn_Submit).click(function() {
			C(ctrl.QueryForm).form('submit',{
				onSubmit : function() {
					return C(ctrl.QueryForm).form('validate');
				},
				success : function(data) {
					var ret = eval('(' + data + ')');

					if(ret && ret.resultSuccess) 
						C(ctrl.ListTable).datagrid('loadData',ret);
					else 
						$.messager.alert('ERROR',ret.resultErrMsg);
					
				}
			});
		});

		C(ctrl.QueryForm).find(ctrl.Btn_Reset).bind('click',resetQueryForm);
		
		C(ctrl.AddForm).find(ctrl.Btn_Cancel).bind('click',switchAddForm2InsertMode);
	};
	
	// 清除查询项目内容
	var resetQueryForm = function() {
		console.info(C(ctrl.QueryForm).html());
		C(ctrl.QueryForm).find('input[type=text]').val('');
		C(ctrl.QueryForm).find('.combo-value').val('');
	};
	
	// 清楚输入项目内容
	var resetAddForm = function() {
		console.info(C(ctrl.AddForm).html());
		C(ctrl.AddForm).find('input[type=text]').val('');
		C(ctrl.AddForm).find('.combo-value').val('');
	};
	
	// 读取选项配置
	var loadComboboxData = function() {
		// JSON读取
		$.getJSON('../script/common/machine-combobox.json',function(data) {
			C(ctrl.Combobox).each(function() {
				$(this).combobox({data : data[$(this).attr('id')]});
			});
		});
		
		// 默认数值
		C(ctrl.Combobox_on).combobox({data : ctrl.onValue});
	};
	
	var datagridRowClick = function(index,data) {
		formload(data);
		
		switchAddForm2UpdateMode();
	};
	
	// 载入FORM数据 转换combobox数据
	var formload = function(data) {
		C(ctrl.AddForm).find('*').each(function() {
			var name = $(this).attr('name');
			if(name) {
				var val = data[name];
				if(val)
					$(this).val(val);
			} else {
				var name = $(this).hasClass('combo-value') ? $(this).parent().prev().attr('id') : null;
				if(name) 
					C(ctrl.AddForm).find('#' + name).combobox('setValue',data[name]);
			}
		});
	};
	
	// 转换combobox数据到hidden
	var formPresubmit = function() {
		C(ctrl.AddForm).find('.combo-value').each(function() {
			C(ctrl.AddForm).find('input[name=' + $(this).parent().prev().attr('id') + ']').val($(this).val());
		});
	};

	// 切换AddForm的模式
	var switchAddForm2InsertMode = function() {
		C(ctrl.AddForm).find(ctrl.Btn_Cancel).hide();
		C(ctrl.AddForm).find('#method').val("post");
		C(ctrl.AddForm).find('#msg').val('当前状态:插入模式');
	};
	
	var switchAddForm2UpdateMode = function() {
		C(ctrl.AddForm).find(ctrl.Btn_Cancel).show();
		C(ctrl.AddForm).find('#method').val("put");
		C(ctrl.AddForm).find('#msg').val('当前状态:编辑模式');
	};
	
	var loadSkillNatureCombo = function() {
		$.get('../../admin/originalMachine/skillNatureCombo',function(data) {
			C('#natureid').combobox('loadData',data.rows);
		},'json');
	};
	
	initSoLControl();
	init();
	loadComboboxData();
	switchAddForm2InsertMode();
	loadSkillNatureCombo();
});